package controllers

import (
	"marx/models"

	"github.com/astaxie/beego"
)

type RegisteredController struct {
	beego.Controller
}

func (this *RegisteredController) Get() {
	this.TplName = "registered.html"
}

// 需要的参数
// name	必须
// pwd 必须
// age 必须（时间类型1996-1-1）
// sex 必须（数字1,2,3...）
// phone 必须
// email 必须
// idcard 必须
func (this *RegisteredController) Post() {
	name := this.Input().Get("name")
	pwd := this.Input().Get("pwd")
	age := this.Input().Get("age")
	sex := this.Input().Get("sex")
	phone := this.Input().Get("phone")
	email := this.Input().Get("email")
	idcard := this.Input().Get("idcard")
	//当参数获取为空
	if name == "" || pwd == "" || age == "" || sex == "" || phone == "" || email == "" || idcard == "" {
		return
	}
	status := models.Registered(name, pwd, age, sex, phone, email, idcard)

	// 0：用户注册成功
	// 1：用户注册失败，用户已经注册，用户名已经存在
	// 2：用户注册失败，密码不合规定，密码不得小于八位
	// 3：用户注册失败，年龄格式错误
	// 4：用户注册失败，年龄不符合规定
	// 5：用户注册失败，性别格式错误/性别类型不符合规定
	// 6：用户注册失败，系统故障
	// 7：用户注册失败，发送邮件失败
	// 8:用户注册失败,邮箱已经占用
	var codejson interface{}
	switch status {
	case 0:
		codejson = Message{0, nil, "注册成功"}
	case 1:
		codejson = Message{1, nil, "注册失败，用户名已存在"}
	case 2:
		codejson = Message{1, nil, "注册失败，密码不得少于8位"}
	case 3:
		codejson = Message{1, nil, "注册失败，年龄格式错误"}
	case 4:
		codejson = Message{1, nil, "注册失败，未成年人不能注册"}
	case 5:
		codejson = Message{1, nil, "注册失败，性别格式错误/性别类型不符合规定"}
	case 6:
		codejson = Message{1, nil, "注册失败，系统故障"}
	case 7:
		codejson = Message{1, nil, "用户注册失败，发送邮件失败"}
	case 8:
		codejson = Message{1, nil, "用户注册失败,邮箱已经占用"}
	}
	this.Data["json"] = codejson
	this.ServeJSON()
	this.Redirect("", 302)
	return
}
